﻿namespace Virtual_Demo
{
    internal class Program
    {
        static void Main()
        {
            BaseClass myBase = new BaseClass();
            DerivedClass myDerived = new DerivedClass();

            //1、调用基类方法
            myBase.VirtualMethod(); // 输出: BaseClass VirtualMethod

            Console.WriteLine("-------------------");

            //2、调用派生类方法，派生类中有一个基类方法
            myDerived.VirtualMethod(); // 输出: BaseClass VirtualMethod
                                       // 输出: DerivedClass VirtualMethod
        }
    }

    public class BaseClass
    {
        public virtual void VirtualMethod()
        {
            Console.WriteLine("虚方法中的基类");
            
        }
    }

    public class DerivedClass : BaseClass
    {
        public override void VirtualMethod()
        {
            base.VirtualMethod();
            Console.WriteLine("虚方法中的派生类");
        }
    }
}
